消息队列是唯一能够实现并发消息同步的手段。
更多...
|
| #define | uExternQueue_Static(que) sCSV_ExternQueue_Static(que) |
| | 声明静态队列 更多...
|
| |
| #define | uExternQueue_Dynamic(que) sCSV_ExternQueue_Dynamic(que) |
| | 声明动态队列 更多...
|
| |
| #define | uCreateQueue_Static(que, mode, len) sCSV_CreateQueue_Static(que, mode, len) |
| | 创建静态队列 更多...
|
| |
| #define | uCreateQueue_Dynamic(que, mode, len) sCSV_CreateQueue_Dynamic(que, mode, len) |
| | 创建动态队列 更多...
|
| |
| #define | uRecvMsg(que, tc) sUSV_RecvMsg(que, tc) |
| | 接收消息 更多...
|
| |
| #define | uSendMsg(que, msg) sUSV_SendMsg(que, msg) |
| | 发送消息 更多...
|
| |
消息队列是唯一能够实现并发消息同步的手段。
消息队列包括静态队列和动态队列。
静态队列:收发消息的效率高,队列占用固定的内存;
动态队列:收发消息的效率低,接收消息后,队列内存可被回收。
- 注解
- 每个队列,用户应当自己明确消息的类型和size,此事与OS无关。
| #define uCreateQueue_Dynamic |
( |
|
que, |
|
|
|
mode, |
|
|
|
len |
|
) |
| sCSV_CreateQueue_Dynamic(que, mode, len) |
创建动态队列
- 参数
-
| [in] | que | 队列名称 |
| [in] | mode | 传输模式
0:FIFO(先入先出)
1:LIFO(后入先出) |
| [in] | len | 队列长度 |
- 返回
- 无
在文件 ur_api.h 第 1202 行定义.
| #define uCreateQueue_Static |
( |
|
que, |
|
|
|
mode, |
|
|
|
len |
|
) |
| sCSV_CreateQueue_Static(que, mode, len) |
创建静态队列
- 参数
-
| [in] | que | 队列名称 |
| [in] | mode | 传输模式
0:FIFO(先入先出)
1:LIFO(后入先出) |
| [in] | len | 队列长度 |
- 返回
- 无
在文件 ur_api.h 第 1191 行定义.
| #define uExternQueue_Dynamic |
( |
|
que | ) |
sCSV_ExternQueue_Dynamic(que) |
| #define uExternQueue_Static |
( |
|
que | ) |
sCSV_ExternQueue_Static(que) |
| #define uRecvMsg |
( |
|
que, |
|
|
|
tc |
|
) |
| sUSV_RecvMsg(que, tc) |
接收消息
- 参数
-
| [in] | que | 队列名称 |
| [in] | tc | 滴答周期(超时时间)
+0:立即返回
~0:无限等待 |
- 返回
- 消息指针(void *)
- 返回值
-
- 注解
- 同型服务:
tRecvMsg(que)。
iRecvMsg(que)。
- 警告
- 任务中接收,不支持在临界区中,包括任务临界区、服务层临界区、全局临界区,或关闭总中断时调用。
-
中断中接收,队列只能是静态队列,消息缓存只能是静态缓存。
在文件 ur_api.h 第 1218 行定义.
| #define uSendMsg |
( |
|
que, |
|
|
|
msg |
|
) |
| sUSV_SendMsg(que, msg) |